The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
In computer networks such as the Internet packets of data are sent from a source to a destination via a network of elements including links (communication paths such as telephone or optical lines) and nodes (usually routers directing the packet along one or more of a plurality of links connected to it) according to one of various routing protocols, including internet protocol (IP).
Each node on the network advertises, throughout the network, links to neighboring nodes and provides a cost associated with each link, which can be based on any appropriate metric such as link bandwidth or delay and is typically expressed as an integer value. A link may have an asymmetric cost, that is, the cost in the direction AB along a link may be different from the cost in a direction BA. Based on the advertised information each node constructs a link state database (LSDB), which is a map of the entire network topology and from that constructs generally a single optimum route to each available node based on an appropriate algorithm such as, for example, a shortest path first (SPF) algorithm. As a result a “spanning tree” is constructed, rooted at the node and showing an optimum path including intermediate nodes to each available destination node. Because each node has a common LSDB (other than when advertised changes are propagating around the network) any node is able to compute the spanning tree rooted at any other node. The results of the SPF are stored in a routing information base (RIB) and based on these results the forwarding information base (FIB) or forwarding table is updated to control forwarding of packets appropriately. When there is a network change, information representing the change is flooded through the network, each node sending it to each adjacent node.
IP Multicast is a bandwidth-conserving technology that reduces traffic by simultaneously delivering a single stream of information from a source to a plurality of receiving devices, for instance to thousands of corporate recipients and homes. Examples of applications that take advantage of multicast technologies include video conferencing, corporate communications, distance learning, and distribution of software, stock quotes and news. IP multicast delivers source traffic to multiple receivers without burdening the source or the receivers while using a minimum of network bandwidth. Multicast packets are replicated in the network at the point where paths diverge by routers enabled with Protocol Independent Multicast (PIM) and other supporting multicast protocols, resulting in efficient delivery of data to multiple receivers. The routers use Protocol Independent Multicast (PIM) to dynamically create a multicast distribution tree.
This can be understood by referring to FIG. 1 which depicts an illustrative network diagram showing a conventional technique for providing multicast messages. Receivers 2 within a designated multicast group 3 are interested in receiving a data stream (for instance video) from a source 4. The receivers 2 indicate their interest by sending an Internet Group Management Protocol (IGMP) host report to the routers 6 in the network 8. The routers 6 are then responsible for delivering the data from the source 4 to the receivers 2.
FIG. 2 is a diagram illustrating a Virtual Private Network (VPN). The VPN comprises a number of VPNs, 10, 11, 12 connected together via a single Autonomous System (AS), service provider backbone network 13. Each VPN may relate to a single site, as is the case with the VPNs indicated by numerals 10 and 12, or a plurality of sites as is the case with the VPN indicated by the numeral 11. Each VPN includes a customer edge (CE) device 14. Customer devices (not shown) are attached to the CE routers 14. The VPNs 10, 11, 12 are connected together via a service provider backbone 13. The service provider backbone 13 includes provider edge (PE) routers 16 which are connected to the CE routers 14. The service provider backbone network 13 also comprises a plurality of P routers 18 which route data from one PE 16 to another. Thus customer devices connected to the CE routers 14 use the VPNs to exchange information between devices. Only the PE routers 16 are aware of the VPNs 10, 11, 12.
Each VPN is associated with one or more VPN routing/forwarding instances (VRFs). A VRF defines the VPN membership of a customer site attached to a PE router. A VRF consists of an IP routing table, a derived forwarding table, a set of indicators that uses the forwarding table, and a set of rules and routing protocol parameters that control the information that is included in the routing table.
A service provider edge (PE) router 16 can learn an IP prefix from a customer edge router 14 by static configuration, through a BGP session with a CE router or through a routing information protocol (RIP) exchange with the CE router 14.
A Route Distinguisher (RD) is an 8-byte value that is concatenated with an IPv4 prefix to create a unique VPN IPv4 prefix. The IP prefix is a member of the IPv4 address family. After it learns the IP prefix, the PE converts it into a VPN-IPv4 prefix by combining it with an 8-byte route distinguisher (RD). The generated prefix is a member of the VPN-IPv4 address family. It serves to uniquely identify the customer address, even if the customer site is using globally non-unique (unregistered private) IP addresses. The route distinguisher used to generate the VPN-IPv4 prefix is specified by a configuration command associated with the VRF on the PE router.
Border Gateway Protocol (BGP) distributes reachability information for prefixes for each VPN. BGP communication takes place at two levels: within IP domains, known as autonomous systems (interior BGP or IBGP) and between autonomous systems (external BGP or EBGP). PE-PE or PE-RR (route reflector) sessions are IBGP sessions, and PE-CE sessions are EBGP sessions.
BGP propagates reachability information for VPN-IPv4 prefixes among PE routers 16 by means of BGP multiprotocol extensions (for example see RFC 2283, Multiprotocol Extensions for BGP-4) which define support for address families other than IPv4. It does this in a way that ensures the routes for a given VPN are learned only by other members of that VPN, enabling members of the VPN to communicate with each other.
Based on routing information stored in the VRF IP routing table and forwarding tables, packets are forwarded to their destination using multi-protocol label switching (MPLS). A PE router binds the label to each customer prefix learnt from the CE router 14 and includes the label in the network reachability information for the prefix that advertises to other PE routers. When a PE router 16 forwards a packet received from a CE router 14 across the provider network 13, it labels the packet with a label (an example of which is a PIM join) learned from the destination PE router. When the destination PE router 16 receives a label packet it pops the label and uses it to direct the packet to the correct CE router. Label forwarding across the provider backbone is based on either dynamic label switching or traffic engineered paths. A customer packet carries two levels of labels when traversing the backbone: a top label which directs the packet to the correct PE router and a second label which indicates how that PE router should forward the packets to the CE router.
Multicast Virtual Private Networks (MVPN) have been devised to provide a user with the ability to send multicast packets over VPNs. To achieve this, MVPN uses a Multicast GRE Tunnel to forward packets across a provider network. Customers can use the MVPN service from a provider to connect office locations as if they were virtually one network. The GRE Tunnel, also known as a Multicast Distribution Tunnel (MDT), is built across the provider network and spans a single BGP Autonomous System (AS).
However, it would be beneficial for the MDT to be spanned over multiple AS's since many customers have an internal network that is split into multiple AS's or have VPN sites that are connected to multiple service providers. This means that service providers, who may be competitors, would need to provide their internal IP address to each other to make the MDT reachable. The MDT is built between two Provider Edge (PE) routers, and other routers in between the PE routers need a way to select the RPF interface towards the other PE of the other AS or VPN. However service providers are unwilling to make their PE routers reachable via unicast for security reasons and therefore do not want to redistribute the PE information into other (competitor) domains.